package com.shujia.wyh;

import java.io.BufferedReader;
import java.io.FileReader;
import java.math.BigDecimal;
import java.sql.*;
import java.util.Properties;

/*
    使用JDBC查询数据库的内容
 */
public class JDBCDemo4 {
    public static void main(String[] args) {
        Connection conn = null;
        try {

            //读取配置文件
            Properties properties = new Properties();
            properties.load(new BufferedReader(new FileReader("mysql/src/main/java/com/shujia/wyh/utils/mysql.properties")));
            //获取数据库的驱动包位置
            String dbVersion = properties.getProperty("dbVersion");
            //获取数据库的连接
            String url = properties.getProperty("url");
            //获取登录数据库的用户名
            String user = properties.getProperty("user");
            //获取登录数据库的密码
            String password = properties.getProperty("password");


            Class.forName(dbVersion);

            conn = DriverManager.getConnection(url, user, password);

            System.out.println("成功与数据库建立连接！！" + conn);

            //获取操作数据库的对象
            Statement statement = conn.createStatement();

            //emp
            //编写sql语句
            String sql = "select empno as liutianbao,ename,job,mgr,hiredate,sal,comm,deptno from emp";
            //执行sql语句
            ResultSet resultSet = statement.executeQuery(sql);
//            resultSet.next();
//            String empno = resultSet.getString(1); //根据索引获取一行的第一列
//            System.out.println(empno);
//            String ename = resultSet.getString(2); //根据索引获取一行的第一列
//            System.out.println(ename);
//            String job = resultSet.getString(3); //根据索引获取一行的第一列
//            System.out.println(job);
//            String mgr = resultSet.getString(4); //根据索引获取一行的第一列
//            System.out.println(mgr);
//            String hiredate = resultSet.getString(5); //根据索引获取一行的第一列
//            System.out.println(hiredate);
//            String sal = resultSet.getString(6);//根据索引获取一行的第一列
//            System.out.println(sal);
//            String comm = resultSet.getString(7); //根据索引获取一行的第一列
//            System.out.println(comm);
//            String deptno = resultSet.getString(8); //根据索引获取一行的第一列
//            System.out.println(deptno);

            //因为不确定每次查询的结果条数，所以采用while循环
            //查看api后发现，当next()返回值是false的时候，表示所有数据遍历完，光标移动到了最后一行的后面
            while (resultSet.next()) {
                //通过索引获取一行中的每一列
//                String empno = resultSet.getString(1); //根据索引获取一行的第1列
//                String ename = resultSet.getString(2); //根据索引获取一行的第2列
//                String job = resultSet.getString(3); //根据索引获取一行的第3列
//                String mgr = resultSet.getString(4); //根据索引获取一行的第4列
//                String hiredate = resultSet.getString(5); //根据索引获取一行的第5列
//                String sal = resultSet.getString(6);//根据索引获取一行的第6列
//                String comm = resultSet.getString(7); //根据索引获取一行的第7列
//                String deptno = resultSet.getString(8); //根据索引获取一行的第8列

                //通过列名获取每一列
                //如果sql中结果集有别名的话，使用别名进行获取
                String empno = resultSet.getString("liutianbao");
                String ename = resultSet.getString("ename");
                String job = resultSet.getString("job");
                String mgr = resultSet.getString("mgr");
                String hiredate = resultSet.getString("hiredate");
                String sal = resultSet.getString("sal");
                String comm = resultSet.getString("comm");
                String deptno = resultSet.getString("deptno");

                System.out.println("员工编号：" + empno + ", 员工姓名：" + ename + ", 工作：" + job + ", 直接上级：" + mgr
                        + ", 入职时间：" + hiredate + ", 薪资：" + sal + ", 津贴" + comm + ", 部门编号：" + deptno);
            }


        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
